oc3dfandomcom-20200215-history
Octoprint
Overview Octoprint is the wireless print host used on most of our printers. It runs on the Raspberry Pi, which is a small Linux computer crammed onto a single circuit board. This page gives a brief guide to using Octoprint, as well as outlines the procedure of getting a Raspberry Pi running an Octoprint server over Oberlin's wifi network. Using Octoprint Octoprint is a very easy-to-use software. If you want to print with it, be sure you've read our 3D Printing Guide and have a GCODE file ready to print. Logging on First, make sure your computer is connected to ObieWiFi. Find the IP address of the printer you want to print with (make sure it's the one you sliced for). It's written on a sticker on the printer. Type this address, without "www", into your address bar in a web browser. You should be taken to Octoprint! Check the banner at the top of the page to make sure you're in the right printer. Click "Log in" at the upper right hand corner. Username: OC3D Password: printit You're in! Uploading Click the Upload button at the lower left and navigate to your GCODE file. That's it! Printing Your file should now be in the "Files" list in the left panel of Octoprint. Navigate to it with the arrows or numbers. Each file has three small icons: A trash can, a folder, and a printer. *The trash can deletes the file. *The folder loads the part. This allows you to see the GCODE in the Gcode Viewer tab at the top of the page. You can then print a loaded part by pressing the large "Print" button in the State panel. *The printer icon loads and immediately prints the part. Watch the temperare curves under the Temperature tab to see the extruer and bed head up. Once they're heated, the print should start! Go to "Control" to watch it print. Here you can also move and home the printer axes. Control Remote printing Octoprint is accessible anywhere on campus, so you can start prints from outside of the lab. This can be very convenient but there are several important notes regarding remote printing: *ONLY PRINT IF YOU SEE AN EMPTY BED. If there is a part on the bed, don't print! If for whatever reason the bed isn't visible, you can't be sure there's not something on it. Don't print! *Check on your print from time to time. If a large print fails early, it can damage the printer and waste filament. If you see something's gone wrong, kill your print with the "Stop" button and head to the lab to figure things out. *If you notice the printer moving or files being uploaded, someone else might be using the server simultaniously. Log off and check back later. Accessing the Pi To get into an existing Octoprint's Pi, ssh into it: ssh xxx.xxx.xxx.xx -l pi Where the x's are the IP. Note that's minus-sign lower-case L, not a one. You'll be prompted for a password; it's "oc3d". You're in! Setting Up Octoprint This section will outline the steps between a factory-fresh Raspberry Pi and SD card and an auto-connecting Octoprint server. If you're looking to do something else with a Raspberry Pi you still may find the wireless setup steps helpful. Install Octopi In addition to Octoprint, the Raspberry Pi will also need a program called MMPEG-streamer to broadcast the video. Some kind soul has put together a Raspberry Pi operating system called Octopi which comes pre-installed with both of these, as well as a few other subtle features that let things run smoothly. Download an Octopi disk image here . Find your operating system at the bottom of this tutorial to flash an SD card with the disk image. Internet configuration Now comes the fun part. We need to configure the Pi's internet settings so it auto-connects to ObieWiFi and has a fixed IP so we log onto it anytime. But since we don't know its IP yet we'll need to access the Pi directly. You'll need: *The Pi *The SD card with Octopi *A USB keyboard to interface with the Pi *An HDMI Cable to plug it in to a display *A microUSB cable to power the Pi *An HDMI display to see the Pi's screen *An ethernet cable (optional) *An ethernet port (optional) That's a lot of stuff. Luckily the lab has an HDMI cable, microUSB, and an ethernet cable. We just need a keyboard and an external display. As for a keyboard, see if you can borrow the lab's or find one elsewhere. If you can have someone let you into one of the Compsci labs in King, there are often extras lying around. King can also provide the HDMI display and ethernet port - each classroom has an HDMI plug for the projector as well as a wired internet port, so find an unused classroom or a computer lab and set up shop with the equipment above. A note about ethernet: In theory you won't need internet for the steps listed, but if there are any extra packages you want to download, or if you prefer to SSH into the Pi once you find your temporary wired IP, then the ethernet is handy. Setting up Plug the HDMI into the Pi and the external display. Plug the keyboard to the Pi. Plug the ethernet into the Pi and into the wall if you'd like it. Finally, power the Pi with the miniUSB into either the wall or a laptop. You should see a bunch of text and then a configuration menu. Set the password to "oc3d", give it a network name ("octopiX" where X is some number is good), enable the camera, and enable SSH under advanced options. Reboot and log in. There's an easy-to-use internet configuration service called wicd-curses which can be very tempting. I don't recommend it for this purpose since it doesn't do well with Oberlin's many similar access point. Instead, we'll edit some configuration files - this method seems to be more robust and reliable. Once you're logged in for real, you'll see a colorful command prompt with the name you chose at startup. Here you can enter commands to the system and they'll execute. Changing the files There are two files we need to change. The first tells the Pi how to handle its wireless internet connection, and the second helps it connect to a network. Both of these are in the "etc" folder in the Pi's filesystem. Octopi sets the home folder a bit deeper than we'd like - if we type ls and press enter, we get boot Desktop mjpg-streamer ocr_pi.png OctoPrint oprint pyserial python_games root scripts which isn't where we want to be. Let's go up two directories. Type this twice, pressing enter after each: cd .. Now an "ls" should list some more cryptic-looking folders, among them "etc". That's the one we want. In particular, we'd like to edit the interfaces file as a superuser: sudo nano etc/network/interfaces This should launch a text editor on a file which looks something like this: auto lo eth0 iface lo inet loopback iface eth0 inet dhcp We'd like to specify an IP address. Edit the file to look like this: auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 auto wlan0 iface wlan0 inet static address 132.162.114.XX netmask 255.255.192.0 gateway 132.162.64.1 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf Instead of "XX" after "address", give the printer an IP address you'll remember. Depending on the state of Oberlin's wifi, you might have to change the third number as well. Check out the IP of your laptop in the internet configuration settings and assign the Pi an IP that shares the first three numbers (differing in only the last one). The netmask and gateway should be the same as your laptop's as well. The above settings worked as of Feb 2015. Next, we need to change the wpa_supplicant configuration. Push CTRL-X and save your changes. Once you're back at the command prompt, type: sudo nano etc/wpa_supplicant/wpa_supplicant.conf You should pull up a text file with a few lines in it. If it's blank, CTRL-X to exit, and try again. Make sure you're in the right place and you typed the above line properly. Edit the resulting file to look like: ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="ObieWiFi" key_mgmt=NONE } CTRL-X and save changes. Believe it or not, the Pi doesn't need a password to get onto ObieWiFi! Watch your capitalization there, by the way. At this point your should be all good to go! Reboot the Pi with sudo reboot and after a few minutes see if you can access it! Go to another computer that's connected to ObieWiFi and type ssh 132.162.xxx.xxx -l pi and see if you connect! (Note that's a minus sign lower-case L). It should prompt you for a password and you should see a familiar command prompt. If you type that same IP into your address bar in a web browser, hey! It's Octoprint! Now it's as easy as plugging in the printer and setting things up in the Settings tab of Octoprint. It's pretty self-explanatory from here.